/***************************************************************************************************
 *Copyright(C),2010-2017,Sumscope
 *FileName	:  nzip.h
 *Author	:  scofined.qi
 *Version	:  1.0
 *Date		:  2017/09/15
 *Desc		:  //用于主要说明此程序文件完成的主要功能
 *Relation :
 *Others	:  //其他内容说明
 *Function :  //主要函数列表，每条记录应包含函数名及功能简要说明
 *History	:
 * //修改历史记录列表，每条修改记录应包含修改日期、修改者及修改内容简介
 ***************************************************************************************************/
#pragma once

#include <vector>

typedef std::vector<bool> BitSet;

struct SequenceZip4 {
 public:
  static void SetBestN(int n);
  static void SetGateN(int n);
  static int Compress(const int* uniqAscendNumbers, int ncount, char* buf,
                      int size);
  static int Uncompress(const char* buf, int size, int* uniqAscendNumbers,
                        int capcity);
  static int Uncompress(const char* buf, int size, std::vector<int>& numbers);
  static bool GetPackInfo(const char* buf, int size, int& count, int& mi,
                          int& mx);
  static int UncompressAsBits(const char* buf, int len, unsigned char* bits,
                              int size);
  static int UncompressAsBits(const char* buf, int len, BitSet& bits);
};
